using Gateway.IApplication.User.Input;
using Gateway.Infrastructure.AutoDI;

namespace Gateway.IApplication.User;

/// <summary>
/// 用户服务
/// </summary>
public interface IUserApp: IDependency
{
    /// <summary>
    /// 创建用户
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> Create(CreateUserInput input);

    /// <summary>
    /// 更新用户
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> Update(UpdateUserInput input);

    /// <summary>
    /// 删除用户
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<bool> Remove(string id);

    /// <summary>
    /// 修改密码
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> ChangePassword(ChangePasswordInput input);

    /// <summary>
    /// 修改姓名
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> ChangeName(ChangeUserNameInput input);
}